Skip to content

chore: Update release candidate#6808

Merged
CatalinSnyk merged 161 commits into
release-candidatefrom
tmp/1778783179-release-candidate
May 15, 2026
Merged

chore: Update release candidate#6808
CatalinSnyk merged 161 commits into
release-candidatefrom
tmp/1778783179-release-candidate

Conversation

@CatalinSnyk
Copy link
Copy Markdown
Contributor

Release Candidate

sathvi-k and others added 30 commits April 2, 2026 12:19
…ret-scan2

fix(mcp): remove --sarif flag as param for secret scanning tool
…me-main

docs: synchronizing README from snyk/user-docs
chore: update dependencies to fix vulnerabilities
fix(ci): Avoid fetching sarif schema in tests
…t-acceptance-tests

fix: acceptance tests for secrets test output [PS-357]
…ceptance-deps-build-image

chore: preinstall linux acceptance deps in build image
SNYK-GOLANG-GOOPENTELEMETRYIOOTELBAGGAGE-15928416
SNYK-GOLANG-GOOPENTELEMETRYIOOTELINTERNALGLOBAL-15928418
SNYK-GOLANG-GOOPENTELEMETRYIOOTELPROPAGATION-15928420
SNYK-GOLANG-STDCRYPTOTLS-15928849
fix: Fix multiple vulnerabilities by upgrading to go1.25.9 and otel-go
…epo-url-before-test

fix: upgrade cli-extension-secrets to strip credentials from repo URLs and normalize for consistent IDs [PS-536]
fix: add tests for sdp upgrade
…ints

chore: update go-application-framework for SARIF fingerprints
…-uv-plugin

refactor: use uv plugin behind new interface
fix: map uv to correct semver definition
danskmt and others added 18 commits May 12, 2026 15:43
chore: upgrade Node.js runtime from 20 to 22 LTS
feat(mcp): add breakability evaluation tool
Address review feedback on the test/monitor request-concurrency knob:

- Restore the default to 5 (the prior hard-coded value), so the env-var
  introduction is purely a configurability change. The default-bump
  question can be revisited separately once we have telemetry, per
  Peter's review.
- Make the GAF configuration the single source of truth for the
  user-facing SNYK_REQUEST_CONCURRENCY value: register a new
  cliv2.ConfigKeyRequestConcurrency key, with snyk_request_concurrency
  as an alternative key (so the env var feeds the config). The Go side
  forwards the resolved value to the legacy CLI process via the
  internal SNYK_INTERNAL_REQUEST_CONCURRENCY env var. The TS helper now
  reads that internal env var instead of the user-facing one, leaving
  the public configuration surface owned by Go (and reachable in the
  future from config files / flags without further TS changes).
- Add the new internal env var to the legacy-CLI env blacklist so a
  user can't bypass the Go config by setting it directly.
- A new env var (not the existing MAX_THREADS) keeps HTTP request
  concurrency separate from the CPU-bound thread pool, per F2F.
Add unit coverage for fillEnvironmentFromConfig's handling of the new
ConfigKeyRequestConcurrency: forwards a user-set value to the legacy
CLI as SNYK_INTERNAL_REQUEST_CONCURRENCY, omits the internal env when
unset, and strips a user-provided internal env so Go remains the
source of truth.
Under main.go's WithSupportedEnvVarPrefixes setup (the production
config), GAF's IsSet does not pre-bind env vars for alternative keys —
only get() does. As a result, config.IsSet(ConfigKeyRequestConcurrency)
returned false even when SNYK_REQUEST_CONCURRENCY was set, so the
internal env var was never forwarded to the legacy CLI process and the
TS code always saw the default concurrency.

Switch to GetString and check non-empty: GetString goes through GAF's
get(), which binds the alt key before reading.

The original unit test passed only because it used WithAutomaticEnv,
which bypasses bindEnv entirely and so masked the production behavior.
Update the test to construct the config the way main.go does (with
WithSupportedEnvVarPrefixes), so the regression is caught next time.
feat: introduce SNYK_REQUEST_CONCURRENCY for dependency request parallelism
feat: Linux ARM64 and Linux AMD64 binaries are now statically linked
Rewrite monitorDependencies in src/lib/ecosystems/monitor.ts to fan out
per-ScanResult /monitor-dependencies PUTs in parallel via pMap, bounded
by the SNYK_REQUEST_CONCURRENCY limit (default 5). Per-ScanResult work
is extracted into monitorOneScanResult for testability and clarity.

Container images that produce many ScanResults (e.g. one per directory
of JARs in fat-JAR-heavy images) previously incurred one full RTT per
scan result, since the prior implementation used a nested for-loop with
await. With bounded parallelism this collapses to ~ceil(N / concurrency)
sequential batches, materially reducing wall-clock for large images.

Error semantics are preserved:
- 401 still throws AuthFailedError (terminates the run).
- Other 4xx still throws MonitorError (terminates via pMap fail-fast).
- 5xx and other non-4xx errors are accumulated per-ScanResult into the
  errors array, matching the prior continue-on-error behavior.

Result order is preserved by pMap based on input order, so output
remains deterministic regardless of completion order.

Tests cover concurrency cap (default 5), env override via the internal
SNYK_INTERNAL_REQUEST_CONCURRENCY contract that the wrapping Go CLI
forwards, ordering preservation, 4xx fail-fast, and 5xx accumulation.
feat: parallelize container monitor dependency requests
@snyk-io
Copy link
Copy Markdown

snyk-io Bot commented May 14, 2026

Snyk checks have passed. No issues have been found so far.

Status Scan Engine Critical High Medium Low Total (0)
Open Source Security 0 0 0 0 0 issues
Licenses 0 0 0 0 0 issues
Code Security 0 0 0 0 0 issues

💻 Catch issues earlier using the plugins for VS Code, JetBrains IDEs, Visual Studio, and Eclipse.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 14, 2026

Warnings
⚠️

Since the CLI is unifying on a standard and improved tooling, we're starting to migrate old-style imports and exports to ES6 ones.
A file you've modified is using either module.exports or require(). If you can, please update them to ES6 import syntax and export syntax.
Files found:

  • src/cli/args.ts
  • src/cli/main.ts
⚠️ There are multiple commits on your branch, please squash them locally before merging!
⚠️

"Merge remote-tracking branch 'origin/main' into chore/sync-main-with-v1.1304.3" is too long. Keep the first line of your commit message under 72 characters.

⚠️

"Merge pull request #6786 from snyk/chore/cli-1489_installSnykFilenameParam" is too long. Keep the first line of your commit message under 72 characters.

⚠️

"Merge pull request #6789 from snyk/docs/automatic-gitbook-update-cli-help-main" is too long. Keep the first line of your commit message under 72 characters.

⚠️

"Merge pull request #6788 from snyk/fix/cli-1493_CVE-2026-33814_CVE-2026-33811_CVE-2026-39836_CVE-2026-33814" is too long. Keep the first line of your commit message under 72 characters.

⚠️

"fix(dependencies): Fix CVE-2026-33814, CVE-2026-33811, CVE-2026-39836, CVE-2026-33814" is too long. Keep the first line of your commit message under 72 characters.

⚠️

"Merge pull request #6764 from snyk/chore/CLI-1469-windows-ci-node-install" is too long. Keep the first line of your commit message under 72 characters.

⚠️

"Merge pull request #6731 from snyk/feat/CSENG-175-add-new-allow-incomplete-sbom-flag" is too long. Keep the first line of your commit message under 72 characters.

⚠️

"Merge branch 'main' into feat/CSENG-175-add-new-allow-incomplete-sbom-flag" is too long. Keep the first line of your commit message under 72 characters.

⚠️

"Merge remote-tracking branch 'origin/main' into chore/sync-main-with-v1.1304.2" is too long. Keep the first line of your commit message under 72 characters.

⚠️

"Merge pull request #6772 from snyk/chore/detect-replace-for-protocol-version" is too long. Keep the first line of your commit message under 72 characters.

⚠️

"Merge pull request #6762 from snyk/fix/mcp-add-annotations-for-anthropic" is too long. Keep the first line of your commit message under 72 characters.

⚠️

"Merge pull request #6759 from snyk/chore/PS-563/update-cli-extension-secrets-version" is too long. Keep the first line of your commit message under 72 characters.

⚠️

"[chore: update cli-extension-secrets to apply git url fix and add report url metadata PS-563](https://api.github.com/repos/snyk/cli/git/commits/2d89f746d7a69bc8113a76c266c03f1e7f18cf9f)" is too long. Keep the first line of your commit message under 72 characters.

⚠️

"Merge pull request #6754 from snyk/fix/cli-1329_sarifMultiLocationRendering" is too long. Keep the first line of your commit message under 72 characters.

⚠️

"fix(ufm): render alll finding locations, report URL and target file info" is too long. Keep the first line of your commit message under 72 characters.

⚠️

"feat: introduce SNYK_REQUEST_CONCURRENCY for dependency request parallelism" is too long. Keep the first line of your commit message under 72 characters.

⚠️

"Merge pull request #6749 from snyk/chore/PS-563/upgrade-cli-extension-secrets-git-url-normalization" is too long. Keep the first line of your commit message under 72 characters.

⚠️

"[chore: upgrade cli-extension-secrets to use GAF git normalization and creds scrubbing PS-563](https://api.github.com/repos/snyk/cli/git/commits/b39722801d690e52c789bf6182a35f71169cbd50)" is too long. Keep the first line of your commit message under 72 characters.

⚠️

"Merge pull request #6743 from snyk/fix/bump-agent-scan-cli-extension-version" is too long. Keep the first line of your commit message under 72 characters.

⚠️

"Merge pull request #6739 from snyk/chore/CLI-1467_update_test_api_schema" is too long. Keep the first line of your commit message under 72 characters.

⚠️

"Merge pull request #6738 from snyk/chore/PS-571/upgrade-cli-extension-secrets-ignore-files" is too long. Keep the first line of your commit message under 72 characters.

⚠️

"chore: upgrade cli-extension-secrets to ignore .gitignore and .gitleaksignore [PS-571]" is too long. Keep the first line of your commit message under 72 characters.

⚠️

"chore: Merge remote-tracking branch 'origin/main' into chore/merge_release_to_main" is too long. Keep the first line of your commit message under 72 characters.

⚠️

"Merge pull request #6736 from snyk/fix/PS-581/promote_command_from_preview" is too long. Keep the first line of your commit message under 72 characters.

⚠️

"Merge pull request #6717 from snyk/chore/CLI-1375_ufm_remediation_for_direct_dependencies" is too long. Keep the first line of your commit message under 72 characters.

⚠️

"Merge pull request #6724 from snyk/feature/CMPA-507-print-graph-target-framework" is too long. Keep the first line of your commit message under 72 characters.

⚠️

"chore: automatic integration of language server 2a6d7434eb914ebe1d2c4629f1e7d72dc4190432" is too long. Keep the first line of your commit message under 72 characters.

⚠️

"Merge pull request #6718 from snyk/refactor/make-use-of-new-interface-uv-plugin" is too long. Keep the first line of your commit message under 72 characters.

⚠️

"Merge pull request #6716 from snyk/chore/CLI-1328-update-gaf-fingerprints" is too long. Keep the first line of your commit message under 72 characters.

⚠️

"Merge pull request #6709 from snyk/fix/PS-536/strip-user-creds-from-repo-url-before-test" is too long. Keep the first line of your commit message under 72 characters.

⚠️

"fix: upgrade cli-extension-secrets to strip credentials from repo URLs and normalize for consistent IDs [PS-536]" is too long. Keep the first line of your commit message under 72 characters.

⚠️

"Merge pull request #6701 from snyk/chore/CLI-1443-preinstall-linux-acceptance-deps-build-image" is too long. Keep the first line of your commit message under 72 characters.

⚠️

"Merge pull request #6628 from snyk/fix/PS-357/extension-secrets-output-acceptance-tests" is too long. Keep the first line of your commit message under 72 characters.

⚠️

"Merge pull request #6692 from snyk/docs/automatic-gitbook-update-readme-main" is too long. Keep the first line of your commit message under 72 characters.

⚠️

"Merge pull request #6705 from snyk/fix/mcp-remove-sarif-flag-from-secret-scan2" is too long. Keep the first line of your commit message under 72 characters.

Generated by 🚫 dangerJS against 3571fa9

@CatalinSnyk CatalinSnyk marked this pull request as ready for review May 15, 2026 11:04
@CatalinSnyk CatalinSnyk requested review from a team as code owners May 15, 2026 11:04
@snyk-pr-review-bot

This comment has been minimized.

@snyk-pr-review-bot
Copy link
Copy Markdown

PR Reviewer Guide 🔍

🧪 PR contains tests
🔒 No security concerns identified
⚡ Recommended focus areas for review

Breaking Change 🟠 [major]

The refactoring of printEffectiveDepGraph into printDepGraphJsonl changes the output format of the CLI when --print-effective-graph is used. Previously, this would likely produce a single JSON object. Now, it appends a newline after each object, producing a JSON Lines stream. External integrations or scripts that parse the output of this command as a single JSON blob will fail with a syntax error.

  new ConcatStream(new JsonStreamStringify(graphOutput), Readable.from('\n'))
    .on('end', res)
    .on('error', rej)
    .pipe(destination);
});
Risk of Orphaned Subprocesses 🟡 [minor]

In setTimeout, if the global timeout is reached, onTimeout is executed immediately. While the Go binary then enters tearDown, it does not explicitly send a signal (SIGTERM/SIGKILL) to any long-running legacy CLI subprocesses initiated in executeV1Default. This could lead to orphaned Node.js processes hanging in the background if they don't respect the context cancellation.

	<-time.After(time.Duration(timeout+gracePeriodForSubProcesses) * time.Second)
	onTimeout()
}()
📚 Repository Context Analyzed

This review considered 95 relevant code sections from 7 files (average relevance: 1.00)

@CatalinSnyk CatalinSnyk merged commit 47099a3 into release-candidate May 15, 2026
8 checks passed
@CatalinSnyk CatalinSnyk deleted the tmp/1778783179-release-candidate branch May 15, 2026 14:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.